import argparse


def get_parser_args():
    """
    Parses the node2vec arguments.
    """
    parser = argparse.ArgumentParser(description="Run line.")

    parser.add_argument("-g", "--graph_path", type=str, default='../../data/graph/erdosrenyi.edgelist',
                        help='Input graph path')
    # 模型信息输出文件
    parser.add_argument("-save", "--save_path", type=str, default='./model.pt')

    # 模型损失函数值输出文件
    parser.add_argument("-lossdata", "--lossdata_path", type=str, default='./loss.pkl')
    # Hyperparams. 超参数
    # 论文中的1st order, 2nd order
    parser.add_argument("-order", "--order", type=int, default=2)
    # 负样本数量
    parser.add_argument("-neg", "--negsamplesize", type=int, default=5)
    # embedding维度
    parser.add_argument("-dim", "--dimension", type=int, default=128)
    # batch大小
    parser.add_argument("-batchsize", "--batchsize", type=int, default=5)
    # epoch数量
    parser.add_argument("-epochs", "--epochs", type=int, default=1)
    # 学习率设置
    parser.add_argument("-lr", "--learning_rate", type=float,
                        default=0.025)  # As starting value in paper
    # 负采样指数值设置
    parser.add_argument("-negpow", "--negativepower", type=float, default=0.75)
    parser.set_defaults(directed=False)

    return parser.parse_args()
